/******************************************************************************
 *
 *	Fichier:			Game.h
 *
 *	Fonction:		point central du jeu, coordonne les actions (mainLoop, events...)
 *
 *	Auteur:		   Tristan Stérin
 *
 *	Copyright:		Copyright (c) 2010 <whomever>
 *						Tous droits réservés.
 *
 *	Source:			Original.
 *
 *	Notes:			
 *
 *	
 ******************************************************************************/

#ifndef DEF_GAME_HEADER
#define DEF_GAME_HEADER

#include "common.h"

class Game
{
	public:
		
		Game();//Constructeur
		~Game();//Destructeur
		
		bool init();//Initialise la SDL, renvoit false si erreur, utilise le système de Log pour décrire l'éventuelle erreur
		void mainLoop();//Coeur du programme
		void manageEvent(SDL_Event evenement);//Gestion des événements
		void setIsNotAnymoreRunning();//arrête la mainLoop
		
		/*****************************************************
		Fonction retournant l'écran sur lequel on doit bliter
		*****************************************************/
		
		inline SDL_Surface* getEcran() const
		{
			return m_ecranDeBlit;
		}
		
		/*****************************************************
		Fonction retournant l'état du programme
		*****************************************************/
		
		inline bool isRunning() const
		{
			return m_run;
		}
	
	private:
		
		bool m_run;//Définit que le programme tourne
		
		SDL_Surface *m_ecranGeneral;//L'Ecran principal (définit la taille de la fenêtre etc...)
		SDL_Surface *m_ecranDeBlit;//Ecran sur lequel tout sera blité, celui-ci sera ensuite zoomé (SDL_gfx)
		SDL_Surface *m_ecranAffiche;//Ecran Blité au final, affichant l'écran de blit zoomé
		
};

#endif